// observable 创建一个被监测的对象，对象的属性是应用的状态，状态会被自动转换为响应式数据
// action 函数是用来显示的定义 action 方法， action 方法是用来修改、更新状态
import { observable, action } from 'mobx-miniprogram';
// 导入本地存储 API 函数
import { getStorage } from '../utils/storage'


export const userStore =  observable({

  // 定义响应式数据
  // 身份令牌
  token : getStorage('token') || '',
  // 用户信息
  userInfo : wx.getStorageSync('userInfo') || {},

  // 定义 action 方法，用来修改状态
  // setToken 用来修改、更新 token
  setToken : action (function (token) {
    // 在调用 setToken 方法时，需要传入token 数据进行赋值
    this.token = token
  }),
  // 对用户信息进行赋值
  setUserInfo : action (function (userInfo){
    this.userInfo = userInfo;
  })
})